home *** CD-ROM | disk | FTP | other *** search
-
-
-
- SSSSEEEENNNNDDDD((((2222)))) SSSSEEEENNNNDDDD((((2222))))
-
-
-
- NNNNAAAAMMMMEEEE
- send, sendto, sendmsg - send a message from a socket
-
- CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ttttyyyyppppeeeessss....hhhh>>>>
- ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ssssoooocccckkkkeeeetttt....hhhh>>>>
- iiiinnnntttt sssseeeennnndddd((((iiiinnnntttt ssss,,,, ccccoooonnnnsssstttt vvvvooooiiiidddd ****mmmmssssgggg,,,, iiiinnnntttt lllleeeennnn,,,, iiiinnnntttt ffffllllaaaaggggssss))));;;;
- iiiinnnntttt sssseeeennnnddddttttoooo((((iiiinnnntttt ssss,,,, ccccoooonnnnsssstttt vvvvooooiiiidddd ****mmmmssssgggg,,,, iiiinnnntttt lllleeeennnn,,,, iiiinnnntttt ffffllllaaaaggggssss,,,,
- ssssttttrrrruuuucccctttt ssssoooocccckkkkaaaaddddddddrrrr ****ttttoooo,,,, iiiinnnntttt ttttoooolllleeeennnn))));;;;
- iiiinnnntttt sssseeeennnnddddmmmmssssgggg((((iiiinnnntttt ssss,,,, ccccoooonnnnsssstttt ssssttttrrrruuuucccctttt mmmmssssgggghhhhddddrrrr ****mmmmssssgggg,,,, iiiinnnntttt ffffllllaaaaggggssss))));;;;
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _S_e_n_d, _s_e_n_d_t_o, and _s_e_n_d_m_s_g are used to transmit a message to another
- socket. _S_e_n_d may be used only when the socket is in a _c_o_n_n_e_c_t_e_d state,
- while _s_e_n_d_t_o and _s_e_n_d_m_s_g may be used when the socket is unconnected.
-
- The address of the target is given by _t_o with _t_o_l_e_n specifying its size.
- The length of the message is given by _l_e_n. If the message is too long to
- pass atomically through the underlying protocol, then the error EMSGSIZE
- is returned, and the message is not transmitted.
-
- Usually no indication of failure to deliver is implicit in a _s_e_n_d.
- Return values of -1 indicate some locally detected errors. Connected
- datagram sockets may receive error indications from a previous _s_e_n_d.
-
- If no messages space is available at the socket to hold the message to be
- transmitted, then _s_e_n_d normally blocks, unless the socket has been placed
- in non-blocking I/O mode. The _s_e_l_e_c_t(2) call may be used to determine
- when it is possible to send more data.
-
- The _f_l_a_g_s parameter may include one or more of the following:
-
- #define MSG_OOB 0x1 /* process out-of-band data */
- #define MSG_DONTROUTE 0x4 /* bypass routing,
- use direct interface */
- #define MSG_DONT_BRKPG 0x100 /* don't break up pages for send */
-
-
-
- The flag MSG_OOB is used to send "out-of-band" data on sockets that
- support this notion (e.g., SOCK_STREAM); the underlying protocol must
- also support "out-of-band" data. MSG_DONTROUTE is usually used only by
- diagnostic or routing programs. MSG_DONT_BRKPG is used to allow the
- user, on a per send basis to stop page flipping and the break up of large
- memory pages to 16k. This can be done automatically for all large pages
- transfers by setting the mtune/bsd/ip_nolgpg_brkup variable. NOTE that
- setting this can have a negative effect on performance.
-
-
- See _r_e_c_v(2) for a description of the _m_s_g_h_d_r structure.
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- SSSSEEEENNNNDDDD((((2222)))) SSSSEEEENNNNDDDD((((2222))))
-
-
-
- RRRREEEETTTTUUUURRRRNNNN VVVVAAAALLLLUUUUEEEE
- The call returns the number of characters sent, or -1 if an error
- occurred.
-
- EEEERRRRRRRROOOORRRRSSSS
- [EBADF] An invalid descriptor was specified.
-
- [ENOTSOCK] The argument _s is not a socket.
-
- [EFAULT] An invalid user space address was specified for a
- parameter.
-
- [EMSGSIZE] The socket requires that message be sent atomically,
- and the size of the message to be sent made this
- impossible.
-
- [EWOULDBLOCK] The socket is marked non-blocking and the requested
- operation would block.
-
- [ENOBUFS] The system was unable to allocate an internal buffer.
- The operation may succeed when buffers become
- available.
-
- [ENOBUFS] The output queue for a network interface was full.
- This generally indicates that the interface has
- stopped sending, but may be caused by transient
- congestion.
-
- [ECONNREFUSED] The remote port was invalid when using the _s_e_n_d call
- on a connected datagram socket.
-
- [EISCONN] A _s_e_n_d_t_o or _s_e_n_d_m_s_g call was used on a connected
- socket.
-
- [EACCES] The requested operation specified a broadcast address
- as the destination but the SO_BROADCAST socket option
- was not enabled (see _s_e_t_s_o_c_k_o_p_t(2)).
-
- [EHOSTUNREACH] The remote host was unreachable via the network.
-
- [ENETUNREACH] The remote network is unknown to the routing system.
-
- [EHOSTDOWN] The remote host was determined to be down, possibly
- due to a failure to resolve its MAC-level address
- (see _a_r_p(7P)).
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- fcntl(2), recv(2), select(2), getsockopt(2), socket(2), write(2)
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- SSSSEEEENNNNDDDD((((2222)))) SSSSEEEENNNNDDDD((((2222))))
-
-
-
- NOTE
- ABI-compliant versions of the above call can be obtained from
- _l_i_b_s_o_c_k_e_t._s_o.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-